/**
 * 全局配置文件
 * 用于管理所有环境的API地址和其他全局配置
 */

// 根据当前环境获取配置
const env = process.env.NODE_ENV || 'development';

// 获取环境变量中的配置
const getEnvValue = (key, defaultValue) => {
  const envKey = `VUE_APP_${key.toUpperCase()}`;
  return process.env[envKey] || defaultValue;
};

// 不同环境的配置
const CONFIG = {
  // 开发环境配置
  development: {
    // API基础URL - 优先从环境变量获取，然后是window.baseUrl，最后是默认值
    baseApi: getEnvValue('BASE_API', window.baseUrl || 'https://tcmsapi.meinn.cn'),
    // 其他开发环境特定配置
    uploadUrl: '/upload',
    timeout: 60000,
    enableDebug: getEnvValue('ENABLE_DEBUG', 'true') === 'true',
  },
  
  // 生产环境配置
  production: {
    // API基础URL
    baseApi: getEnvValue('BASE_API', window.baseUrl || 'https://tcmsapi.meinn.cn'),
    // 其他生产环境特定配置
    uploadUrl: '/upload',
    timeout: 60000,
    enableDebug: false,
  },
  
  // 测试环境配置
  staging: {
    // API基础URL
    baseApi: getEnvValue('BASE_API', window.baseUrl || 'https://tcmsapi-test.meinn.cn'),
    // 其他测试环境特定配置
    uploadUrl: '/upload',
    timeout: 60000,
    enableDebug: getEnvValue('ENABLE_DEBUG', 'false') === 'true',
  }
};

// 导出当前环境的配置
const config = CONFIG[env];

/**
 * 安全的日志输出函数
 * 在生产环境下不会输出任何日志
 */
export const log = {
  // 调试日志
  debug: (...args) => {
    if (config.enableDebug && process.env.NODE_ENV !== 'production') {
      console.debug('[DEBUG]', ...args);
    }
  },
  // 普通日志
  info: (...args) => {
    if (config.enableDebug && process.env.NODE_ENV !== 'production') {
      console.log('[INFO]', ...args);
    }
  },
  // 警告日志
  warn: (...args) => {
    if (config.enableDebug && process.env.NODE_ENV !== 'production') {
      console.warn('[WARN]', ...args);
    }
  },
  // 错误日志（在任何环境都会显示，但可以通过设置disableErrorLogs关闭）
  error: (...args) => {
    if (!config.disableErrorLogs) {
      console.error('[ERROR]', ...args);
    }
  }
};

// 添加日志函数到配置
config.log = log;

export default config; 